home *** CD-ROM | disk | FTP | other *** search
/ Pascal Super Library / Pascal Super Library (CW International)(1997).bin / LIBRARY / PAS_0493 / KEYS.PAS < prev    next >
Pascal/Delphi Source File  |  1993-04-14  |  2KB  |  79 lines

  1. {─ Fido Pascal Conference ────────────────────────────────────────────── PASCAL ─
  2. Msg  : 116 of 150                                                               
  3. From : Sean Palmer                         1:104/123.0          08 Apr 93  15:36 
  4. To   : All                                                                       
  5. Subj : G:Keys unit                                                            
  6. ────────────────────────────────────────────────────────────────────────────────}
  7. {by Sean Palmer, 1993}
  8. {Turbo Pascal 6.0}
  9. {released to the public domain}
  10.  
  11. unit keys;
  12. interface
  13.  
  14. const
  15.  kEsc=1;
  16.  k1=2; k2=3; k3=4; k4=5; k5=6; k6=7; k7=8; k8=9; k9=10; k0=11;
  17.  kMinus=12; kEqual=13; kBack=14;
  18.  kTab=15;
  19.  kQ=16; kW=17; kE=18; kR=19; kT=20; kY=21; kU=22; kI=23; kO=24; kP=25;
  20.  kLfBracket=26; kRtBracket=27;
  21.  kEnter=28;
  22.  kA=30; kS=31; kD=32; kF=33; kG=34; kH=35; kJ=36; kK=37; kL=38;
  23.  kColon=39; kQuote=40; kBackQuote=41;
  24.  kBackSlash=43;
  25.  kZ=44; kX=45; kC=46; kV=47; kB=48; kN=49; kM=50;
  26.  kComma=51; kPeriod=52; kSlash=53;
  27.  kSpace=57;
  28.  kF1=59; kF2=60; kF3=61; kF4=62; kF5=63; kF6=64; kF7=65; kF8=66; kF9=67;
  29.  kF10=68;  kHome=71; kUp=72; kPgUp=73; kPadMinus=74;
  30.  kLf=75; kPad5=76; kRt=77; kPadPlus=78;
  31.  kEnd=79; kDn=80; kPgDn=81;
  32.  kIns=82; kDel=83;
  33.  
  34.  kShift=3;
  35.  kCtrl=4;
  36.  kAlt=8;
  37.  kScroll=16;
  38.  kNum=32;
  39.  kCaps=64;
  40.  
  41. var
  42.  shiftStatus:byte absolute $40:$17;
  43.  
  44. function readKey:char;Inline(
  45.   $B4/$07/               { mov ah,7}
  46.   $CD/$21);              { int $21}
  47.    
  48. function keyPressed:boolean;Inline(
  49.   $B4/$0B/               { mov ah,$B}
  50.   $CD/$21/               { int $21}
  51.   $24/$FE);              { and al,$FE}
  52.    
  53. function scanKey:byte;Inline(
  54.   $31/$C0/               { xor ax,ax}
  55.   $CD/$16/               { int $16}
  56.   $88/$E0);              { mov al,ah}
  57.    
  58. function shiftKey:boolean;Inline(
  59.   $B8/$40/$00/           { mov ax,$40}
  60.   $8E/$C0/               { mov es,ax}
  61.   $26/$A0/$17/$00/       { es: mov al,[$17]}
  62.   $24/kShift);           { and al,kShift}
  63.  
  64. function ctrlKey:boolean;Inline(
  65.   $B8/$40/$00/           { mov ax,$40}
  66.   $8E/$C0/               { mov es,ax}
  67.   $26/$A0/$17/$00/       { es: mov al,[$17]}
  68.   $24/kCtrl);            { and al,kCtrl}
  69.    
  70. function altKey:boolean;Inline(
  71.   $B8/$40/$00/           { mov ax,$40}
  72.   $8E/$C0/               { mov es,ax}
  73.   $26/$A0/$17/$00/       { es: mov al,[$17]}
  74.   $24/kAlt);             { and al,kAlt}
  75.  
  76. implementation
  77.  
  78. end.
  79.